home *** CD-ROM | disk | FTP | other *** search
- Path: ix.netcom.com!netnews
- From: miker3@ix.netcom.com (Mike Rubenstein)
- Newsgroups: comp.lang.c
- Subject: Re: What is &Variable (declared as: char Variable[10])?
- Date: Tue, 27 Feb 1996 14:50:18 GMT
- Organization: Netcom
- Message-ID: <313318b8.53776146@nntp.ix.netcom.com>
- References: <4gqpa1$3h9@alcor.usc.edu> <4gsdno$1bg@umbc9.umbc.edu> <4gtab6$acb@ceylon.gte.com>
- NNTP-Posting-Host: ix-dc12-08.ix.netcom.com
- X-NETCOM-Date: Tue Feb 27 6:50:08 AM PST 1996
- X-Newsreader: Forte Agent .99d/32.182
-
- Brenda <g051286> wrote:
-
- > schlein@umbc.edu (Jonas J. Schlein) wrote:
- > >Abu Wawda <wawda@alcor.usc.edu> wrote:
- > >|> I'm having trouble understanding what the address of a static array
- > >|> is.
- > >
- > >I'm having trouble understanding why it matters? You almost never use the
- > >address of an array directly unless doing something tricky with pointers
- > >or with particular dimensions of a multiple dimensional array.
- > >
- > >|> For example, if I declare a variable called myarray as:
- > >|> char myarray[10];
- > >|> then what could &myarray possibly mean? myarray is not a pointer, so
- > >|> &myarray could not possibly be the address of the variable myarray
- > >|> (like it would be if I did char* myarray and then asked for &myarray).
- > >
- > >Yes it could and yes it is...'myarray' is not a pointer, but &myarray is
- > >a pointer to 'myarray'.
- >
- > Um, that's not correct. myarray is DEFINITELY a pointer! As declared above,
- > it is a constant pointer to 10 contiguous char datatypes. myarray is an
- > ADDRESS whereas *(myarray + 5) or myarray[5] is the 6th element in the array.
- > The difference between an array and something like "char *p=myarray", is that
- > you can say p++, but you can't say myarray++. You shouldn't say &myarray
- > either because myarray is a constant, but I read that on some compilers
- > scanf ignores the dereferencing and does not bother to warn you.
-
- NO. NO. NO. Where do people get this idea that arrays are pointers.
- Arrays are arrays and pointers are pointers. In many, but not all,
- situations an array is converted to a pointer. There are exceptions.
- For example sizeof myarray is 10 but sizeof p is almost certainly not
- 10.
-
- Why shouldn't you say &myarray. It's perfectly legal C and any
- compiler that does not accept it is broken. &myarray is a pointer to
- an array of 10 char.
-
-
- Michael M Rubenstein
-